/* export命令 */
export var EXfirstName = 'Michael';
export var EXlastName = 'Jackson';
export var EXyear = 1958;

// 声明分组 - 大括号必加
var firstName = 'Michael';
var lastName = 'Jackson';
var year = 1958;
function add (x, y) { return x + y };
// export语句必须放在顶层, 不能放在块级作用域中
export { firstName, lastName, year, add };

// 默认导出 - default
export default function () { console.log('I am default'); } // 若有函数名, 加载时同样视为匿名函数加载
var def = 'default test';
// export { def as default }; // 先定义变量后设置默认值

/* 模块转移导出 - export & import 复合使用 */
// export {...} from 'file.js' === import {...} from 'file.js' export {...}
// 先加载模块, 然后重定义输出
// 批量导入时 export * as 新名称 from "file.js"; (相当于module的继承)
// 注意使用 export * 时, 会忽略default方法
export { foo as myFoo, bar } from './es6_module2.js';

/* const声明的常量可以跨模块共享 */
// 使用常量多时, 可以专门建一个目录, 把不同常量写在不同文件里, 保存在该目录下, 然后将这些文件输出的常量, 合并在一个index.js里
// (见阮一峰教程)
export { A } from './es6_module2.js';
